import router from '@/router'
import { useLoginUserStore } from '@/stores/useUserLoginStore'
import { message } from 'ant-design-vue'

// 是否为首次登录
let firstFetchLoginUser = true

// 前置路由守卫
router.beforeEach( async (to, from, next) => {
  const userLoginStore = useLoginUserStore()
  const loginUser = userLoginStore.loginUser
  if (firstFetchLoginUser) {
    // 那就发送请求获取用户信息,为了防止反复返送请求
    // 阻塞等待用户数据，然后校验
    await userLoginStore.featureLoginUserGet()
    console.log(1)
    firstFetchLoginUser = false
  }
  // 校验用户
  const toUrl = to.fullPath
  console.log('toUrl', toUrl)
  if (toUrl.startsWith('/admin')) {
    // 表示访问的是后台管理系统,只有管理员才能访问
    if (!loginUser || loginUser.userRole !== 'admin') {
      // 如果没有登录或者不是管理员
      message.error('没有权限')
      next(`/`)
    }
  }
  // 其他放行
  next()
})
